package com.insigma.yanwenlong.bookkeeping.service;

import java.sql.Date;
import java.sql.SQLException;
import java.util.List;

import com.insigma.yanwenlong.bookkeeping.pojo.DayConsumeCondition;
import com.insigma.yanwenlong.bookkeeping.pojo.Detail;
import com.insigma.yanwenlong.bookkeeping.pojo.DetailCondition;
import com.insigma.yanwenlong.bookkeeping.pojo.YearConsumeCondition;
import com.insigma.yanwenlong.bookkeeping.pojo.vo.DetailVo;

public interface DetailService {
	//查找所有的账务信息
	List<DetailVo> findDetails() throws SQLException;
	//根据界面输入的条件查找所有的账务信息
	List<DetailVo> findDetailsBy(String accountName,Date startTime,Date stopTime,String categoryName,String note) throws SQLException;
	//根据id查找某条账务信息
	DetailVo finDetailVoById(int id) throws SQLException;
	//根据DetailVo更新某条账务信息
	int updateDetailByDetailVo(DetailVo detailVo) throws SQLException;
	//根据id删除某条账务信息
	int deleteDetailById(int id) throws SQLException;
	//插入某条账务信息
	int addDetail(Detail detail) throws SQLException;
	//根据界面输入的条件查找所有的账务信息
	List<DetailVo> findDetailsBy(String accountName,Date startTime,Date stopTime,String memberName,double beginMoney,double endMoney) throws SQLException;
	//根据不定多条件查询所有的账务信息
	List<DetailCondition> findDetailsByConditions(DetailCondition detailCondition) throws SQLException;
	//根据不定多条件查询所有的账务的日常收支信息
	List<DayConsumeCondition> findDayConsumeConditions(DayConsumeCondition dcc) throws SQLException;
	//根据不定多条件查询所有的账务的年度收支信息
	List<YearConsumeCondition> findYearConsumeConditions(YearConsumeCondition ycc) throws SQLException;
	//根据memberId删除某账户
	boolean deleteDetailBymemberId(int memberId) throws SQLException;
}
